import java.util.Comparator;
import java.util.TreeSet;

public class TreeSetTest {
    public static void main(String[] args) {
        // 使用Comparator接口实现定制排序
        Comparator<MyUser> cmp = new Comparator<MyUser>() {
            public int compare(MyUser u1, MyUser u2) {
                if (u1.age > u2.age) {
                    return 1;
                } else if (u1.age < u2.age) {
                    return -1;
                } else {
                    return u1.name.compareTo(u2.name);
                }
            }
        };

        // 带参数的构造方法，传入Comparator对象
        TreeSet<MyUser> tset = new TreeSet<MyUser>(cmp);

        tset.add(new MyUser("Tom", 25));
        tset.add(new MyUser("Bob", 18));
        tset.add(new MyUser("Andy", 23));
        tset.add(new MyUser("Tony", 25));

        for (Object obj : tset) {
            System.out.println(obj); // 18 Bob, 23 Andy, 25 Tom, 25 Tony
        }
    }

}

// // 需要实现Comparable接口实现compareTo()方法
// class MyUser {
// String name;
// int age;

// MyUser(String name, int age) {
// this.name = name;
// this.age = age;
// }

// // 重写toString()方法用于output
// public String toString() {
// return age + " " + name;
// }
// }
